package cn.huiyunche.base.service.interfaces;

import cn.huiyunche.base.service.model.BScoresTurnover;
import cn.huiyunche.base.service.vo.PageVo;
import cn.huiyunche.base.service.vo.UserShowVo;

import java.math.BigDecimal;
import java.util.Map;

/**
 * 积分流水接口类
 *
 * @author lm
 */
public interface BScoresTurnoverService {

    /**
     * 用户注册添加积分
     *
     * @param userId
     * @param userType
     */
    void addDiscountScores(Long userId, int userType);

    /**
     * 根据用户查询用户明细
     * －－ 查询用户 积分流水
     *
     * @param userShowVo
     * @return
     */
    Map<String, Object> selectTurnoversByUser(UserShowVo userShowVo, PageVo page);

    /**
     * 根据当前登录用户
     * 查询积分流水 scoresTurnover
     * －－ 托运企业
     *
     * @return
     */
    Map<String, Object> selectTurnoversByCurrent(PageVo page);

    /**
     * 添加积分
     *
     * @param bScoresTurnover 积分流水对象
     * @param flag            true: 添加到余额 false: 不添加到余额
     * @return
     */
    int insert(BScoresTurnover bScoresTurnover, boolean flag);

    /**
     * @param paymentId 支付记录ID
     * @param orderId   客户订单ID
     *                  根据客户订单ID
     *                  查询用户未使用的积分抵扣金额
     * @param orderId
     */
    BigDecimal getNotUsedScores(Long paymentId, Long orderId);

    /**
     * 根据paymentId 扣除积分
     *
     * @param id
     * @return
     */
    int updateByPaymentId(Long id);

}